An example of a system that supports an operation of modifying an existing application is described in Patent Document 1 (JP 2008-117067 A). An annotation is information that imparts meaning to individual elements of a program and is not deleted when compiling unlike comments. The system disclosed in Patent Document 1 having such a configuration operates as follows. An annotation detection unit identifies an individual situation, an input interface conversion unit changes an input interface, an output interface conversion unit changes an output interface, and a new model creation unit creates a design model that calls the changed interface and stores the result thereof in a design model storage unit.
Another example of the system that supports an operation of modifying an existing application is disclosed in Patent Document 2 (JP 2007-213487 A). The system disclosed in Patent Document 2 includes a user interface management unit, a class information analyzing unit, an advice analyzing unit, and an aspect generating unit. In aspect-oriented programming, an aspect means a process that is independent of the functional requirements of an application such as outputting of logs. The process that is independent of the functional requirements of the application is implemented by incorporating the aspect in the application program when deploying or executing programs. The definition of specific processing of the aspect is referred to as an advice. The position within the application program that incorporates the aspect is referred to as a pointcut. The description of the aspect includes an advice and a pointcut.
The system disclosed in Patent Document 2 having such a configuration operates as follows. The class information analyzing unit generates candidates for a class or method that defines an aspect. The advice analyzing unit generates candidates for a data structure to be included in an advice. The user interface management unit displays these candidates so that a user selects a candidate. Based on the result of the selection, the aspect generating unit generates an aspect.
When deploying or executing a program using an aspect-oriented programming technique, it is possible to create a customized program corresponding to user individual requirements using a multi-deployment program that branches to different sets of program strings for each user by referring to a user identifier. When multi-deployment is performed, a framework program that represents a logic that branches to different sets of program strings for each user by referring to the user identifier is automatically inserted to an application program. Different sets of program strings for each user are executed even if it is not stated in the application program.